<?php

namespace app\pay\command;

use think\console\Command;
use think\console\Input;
use think\console\Output;
use think\Db;

class Pay extends Command
{

    protected function configure()
    {
        
        $this->setName('pay')
            ->setDescription('更新支付订单状态计划任务'); //命令的描述
           
    }

    protected function execute(Input $input, Output $output)
    {

        $PayList = Db::name('pay')->where(['status' => 0])->select();
        
        if(!$PayList)
        {
            $output->info('目前暂无待支付的订单');
            return false;
        }

        $ids = [];

        foreach($PayList as $item)
        {
            // 3分钟后需要设置成为关闭后的订单
            $endTime = $item['createtime'] + (60 * 3);

            if(time() >= $endTime)
            {
                $ids[] = $item['id'];
            }
        }

        if(empty($ids))
        {
            $output->info('目前没有待支付的订单');
            return false;
        }

        $result = Db::name('pay')->where(['id' => ['IN',$ids]])->update(['status' => 2]);

        if($result === false)
        {
            $output->error('执行数据库语句失败');
        }

        // 输出
        $output->info("已关闭 $result 个未支付订单");
        return false;
    }
}
